package serverSide;

import java.util.ArrayList;
import java.util.List;

public class Param {
	private List< ParamData> parameters;
	
	/**
	 * @return list of parameter data
	 */
	public List<ParamData> getParameters()
	{
		return parameters;
	}
	
	/**
	 * @param type
	 * @param value Value of parameter
	 */
	public Param(SqlDataType type, String value)
	{
		parameters = new ArrayList<>();
		parameters.add(new ParamData(type, value));
	}
	
	/**
	 * constructor
	 */
	public Param()
	{
		parameters = new ArrayList<>();
	}
	
	
	public Param(ParamData data)
	{
		parameters = new ArrayList<>();
		parameters.add(data);
	}
	
	/**
	 * @param param
	 */
	public void Add(ParamData param)
	{
		parameters.add(param);
	}

	/**
	 * @param index
	 * @return
	 * @throws Exception
	 */
	public ParamData At(int index) throws Exception
	{
		if(parameters == null || index >= parameters.size())
			throw new Exception("Index out of range");
		return parameters.get(index);
	}

//	public static Param Parse(String source)
//	{
//		//3-#
//		String [] s = null ;
//		int length = 1;
//		try
//		{
//			s= source.split("*Param*");
//			length = s.length;
//		}
//		catch(Exception ie)
//		{
//			length = 0;
//		}
//		if(length == 0)
//		{
//			return new Param( ParamData.Parse(source));
//		}
//		Param p = new Param();
//		for(int i = 0; i < s.length; i++)
//		{
//			p.Add(ParamData.Parse(s[i]));
//		}
//		return p;
//	}
	
	
//	@Override
//	public String toString() {
//		// TODO Auto-generated method stub
//		String s = "";
//		for(ParamData p : parameters)
//			s += p.toString() + "*Param*";
//		s = s.substring(0, s.length() - "*Param*".length() );
//		return s;
//	}
}
